Information processing apparatus with print preview function

ABSTRACT

A printer apparatus of this invention includes a reception unit which receives print job from a host apparatus, a preview information generation unit which generates preview information that indicates layouts of logical pages and finishing processing for respective physical pages to be printed in accordance with job control information and print data included in the print job, when a job type corresponding to the print job is preview, and a transmission unit which transmits the preview information to the host apparatus.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to, for example, an information processingapparatus such as a personal computer or the like which transmits printdata to a printer and, more particularly, to an information processingapparatus which displays a preview based on print data at the time of aprint instruction.

2. Description of the Related Art

Conventionally, a preview scheme that displays a print result on aninformation processing apparatus such as a host computer or the likebefore execution of printing roughly includes two schemes.

In one preview scheme, an information processing apparatus generates anddisplays a preview image by simulating processing to be executed by aprinter so as to allow the user to confirm a finishing result upon usinga function such as stapling or the like (for example, see JapanesePatent Laid-Open No. 2001-67347).

In the other preview scheme, an information processing apparatus sendsprint instructions to a printer, the printer sends back image data whichhas undergone RIP processing (rasterize processing) to a host, and thehost displays the image data (for example, see Japanese Patent Laid-OpenNo. 08-030410).

Some printers as computer peripheral devices support a Print On Demand(to be abbreviated as POD hereinafter) service, and have advancedfunctions such as complete bookbinding. Upon using printers withadvanced functions, plural pieces of information associated with printresults such as a finishing result, color determination result, blankpage determination result, and the like that the user should know beforeactual printing are complicated, and functions which do not allow formistakes are increasing. Since these pieces of information are differentfor respective printers, respective print instructions, and respectivepages, it becomes difficult for a computer to completely simulate them.

SUMMARY OF THE INVENTION

The present invention has been made in consideration of the above priorart, and has as its object to provide a printer apparatus which canimplement an accurate preview display that reflects processing to beexecuted by the printer. It is another object of the present inventionto provide a printer apparatus which allows the user to change printsettings while displaying a preview window and can accurately reflectchanges of the print setting in the preview and printouts.

In order to achieve the above object, the present invention comprisesthe following arrangement. That is, there is provided a printerapparatus comprising:

a reception unit adapted to receive print job from a host apparatus;

a preview information generation unit adapted to generate, when a jobtype corresponding to the print job is preview, preview informationwhich indicates layouts of logical pages and finishing processing forrespective physical pages to be printed in accordance with job controlinformation and print data included in the print job; and

a transmission unit adapted to transmit the preview information to thehost apparatus.

The present invention can implement an accurate preview display thatreflects the states of output materials by the printer. The presentinvention allows the user to change print settings while displaying apreview window, and can accurately reflect the changes of the printsettings on a preview and printouts.

Further features of the present invention will become apparent from thefollowing description of exemplary embodiments with reference to theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram for explaining the arrangement of a printcontrol apparatus according to one embodiment of the present invention;

FIG. 2 is a block diagram showing the arrangement of a typical printsystem of a host computer to which a printer is connected;

FIG. 3 is a block diagram showing the arrangement of a print systemwhich temporarily spools an intermediate code before it converts printinstructions from an application into printer control commands;

FIG. 4 is a sectional view for explaining a printer according to thepresent invention;

FIG. 5 is a flowchart showing the processing in a spooler 302;

FIG. 6 is a flowchart showing the print control in a spool file manager304;

FIG. 7 is a flowchart showing the processing in a despooler 305;

FIG. 8 shows an example of a print setting window of a printer driver;

FIG. 9 shows an example of a list display window of a spool file;

FIG. 10 shows an example of preview information (JDFP);

FIG. 11 shows an example of a preview window;

FIG. 12 shows an example of a preview job;

FIG. 13 shows an example of a preview job;

FIG. 14 is a flowchart for explaining the preview processing of apreviewer;

FIGS. 15A and 15B are flowcharts for explaining the preview processingand print processing of a printer;

FIG. 16 is a chart showing the flow of the overall conventional previewprocessing system;

FIG. 17 is a chart showing the flow of the overall preview processingsystem according to the present invention;

FIG. 18 shows an example of a print instruction job; and

FIG. 19 shows an example of a print cancel job.

DESCRIPTION OF THE EMBODIMENTS

Embodiments to which the present invention can be suitably applied willbe described hereinafter. FIG. 1 is a block diagram showing thearrangement of a printer control system according to one embodiment ofthe present invention. Note that the present invention can be applied toany of a standalone device, a system including a plurality of devices,and a system in which devices are connected via a network such as a LAN,WAN, or the like to execute processing, as long as the functions of thepresent invention can be implemented.

Referring to FIG. 1, a host computer 3000 comprises a CPU 101. The CPU101 systematically controls respective devices connected to a system bus104. The CPU 101 controls document processing, print processing, and thelike of documents that include any combinations of graphics data, imagedata, text data, table data (including a spreadsheet), and the liketogether, based on a document processing program and the like stored ina program ROM of a ROM 103 or an external memory 111. The program ROM ofthe ROM 103 or the external memory 111 stores an operating systemprogram (to be referred to as an OS hereinafter), and programs of theprocedures shown in FIGS. 5, 6, 7, and 14. A font ROM of the ROM 103 orthe external memory 111 stores font data and the like used in thedocument processing. A data ROM of the ROM 103 or the external memory111 stores various data used upon executing the document processing andthe like. A RAM 102 serves as a main memory, work area, and the like ofthe CPU 101.

A keyboard controller (KBC) 105 controls key inputs from a keyboard 109and a pointing device (not shown). A CRT controller (CRTC) 106 controlsa display on a CRT display (CRT) 110. A disk controller (DKC) 107controls access to the external memory 111 such as a hard disk (HD),flexible disk (FD), or the like. The external memory 111 such as thehard disk or the like stores programs and data such as a boot program,various applications, font data, user files, edit files, a printercontrol command (or to be referred to as a PDL command) generationprogram (to be referred to as a printer driver hereinafter), and thelike. A printer controller (PRTC) 108 is connected to a printer 2000 viaa network 121, and executes communication control processing with theprinter 2000. The printer (printing apparatus) 2000 is often connectedto a network such as Ethernet® or the like.

Note that the CPU 101 executes rasterize processing of a print previewimage on a display information RAM assured on, e.g., the RAM 102 todisplay a preview on the CRT 110. The CPU 101 opens various registeredwindows based on commands instructed by a mouse cursor or the like (notshown) on the CRT 110, and executes various kinds of data processing inaccordance with operations by the operator. Upon execution of printing,the user opens a window associated with print settings, and can set aprinter and a print processing method for a printer driver as well asselection of a print mode. The user can also call and display the windowfor the print settings (also called print attributes) from a previewdisplay window, and can change the settings from the windows for theprint settings. In this embodiment, various settings for printing arecalled print settings, and information including the print settingstogether is called print setting information. The print settinginformation is, for example, a structure called DEVMODE in Windows®. Theprint setting information is changed by the printer driver, is passed toa spooler for each print job, and is saved as the print settings of thatjob. This information which is stored in the spooler and indicates theprint settings for each job is called job setting information.

A printer CPU 112 controls the printer 2000. The printer CPU 112 outputsan image signal as output information to a printer engine 2010 connectedto a system bus 115 via a printer engine interface 118 based on controlprograms and the like stored in a program ROM of a ROM 113 or anexternal memory 2011. The program ROM of the ROM 113 stores controlprograms and the like of the CPU 112. A font ROM of the ROM 113 storesfont data and the like used upon generating the output information. Adata ROM of the ROM 113 stores information and the like used on the hostcomputer in case of a printer which has no external memory 2011 such asa hard disk or the like.

The printer CPU 112 can execute communication processing with the hostcomputer via an interface unit 2001, and can send information and thelike in the printer to the host computer 3000. A RAM 119 serves as amain memory, work area, and the like of the printer CPU 112, and canexpand its memory capacity by an optional RAM connected to an expansionport (not shown). Note that the RAM 119 can also be used as an outputinformation rasterize area, environmental data storage area, NVRAM, andthe like. A disk controller (DKC) 120 controls access to the externalmemory 2011 such as a hard disk (HD), IC card, or the like. The externalmemory 2011 is connected as an option, and stores font data, emulationprograms, form data, and the like. On the operation panel 2020,switches, LED indicators, and the like used to operate the printer arearranged. The printer CPU 112 executes the program of the procedureshown in FIGS. 15A and 15B, and rasterizes print data received from thecomputer 3000 to print it on a paper sheet. In case of a preview job,the printer CPU 112 generates preview information which reflects layoutsand the like for respective pages, and finishing processing based on thejob setting Information received from the computer 3000, and transmitsthe generated preview information to the computer 3000.

The number of external memories 2011 is not limited to one, and aplurality of external memories may be connected. A plurality of externalmemories including an optional font card in addition to built-in fontdata, an external memory which stores a program that interprets aprinter control language of a different language system, and the likemay be connected. Furthermore, the printer may comprise an NVRAM (notshown), and may store printer mode setting information from an operationpanel 2020.

<Arrangement of Printer>

FIG. 4 is a sectional view of a color laser beam printer which has adouble-sided print function, as an example of the printer 2000. Theprinter 2000 scans, via a polygon mirror 31, a photosensitive drum 15with a laser beam, which is modulated by image data for each colorobtained based on print data input from the host computer 3000, thusforming an electrostatic latent image. The printer 2000 develops thiselectrostatic image by each toner to obtain a visible image of a givencolor, and multiple-transfers visible images for all the colors onto anintermediate transfer member 9, thus forming a color visible image.Furthermore, the printer 2000 transfers this color visible image onto atransfer material (e.g., a sheet of paper) 2, and fixes the colorvisible image on the transfer material 2. An image forming unit whichmakes the aforementioned control comprises a drum unit having thephotosensitive drum 15, a primary charger having a contact chargerroller 17, a cleaning unit, a developing unit, the intermediate transfermember 9, a paper feed unit including a paper cassette 1 and variousrollers 3, 4, 5, and 7, a transfer unit including a transfer roller 10,and a fixing unit 25.

A drum unit 13 is configured by integrating the photosensitive drum(photosensitive body) 15 and a cleaner container 14 which also serves asa holder of the photosensitive drum 15 and has a cleaning mechanism.This drum unit 13 is detachably supported by a printer main body, and iseasily exchanged by another unit in correspondence with the service lifeof the photosensitive drum 15. The photosensitive drum 15 is formed byapplying an organic photoconductor layer on the outer circumferentialsurface of an aluminum cylinder, and is rotatably supported by thecleaner container 14. The photosensitive drum 15 is rotated by thedriving force transmitted from a drive motor (not shown), which rotatesthe photosensitive drum 15 counterclockwise in correspondence with theimage forming operation. An electrostatic latent image is formed byselectively exposing the surface of the photosensitive drum 15. In ascanner unit 30, a modulated laser beam is reflected by the polygonmirror 31, which rotates in synchronism with a horizontal sync signal ofan image signal by a motor 31 a, and strikes the photosensitive drum viaa lens 32 and reflecting mirror 33.

The developing unit has an arrangement comprising three color developers20Y, 20M, and 20C used to develop yellow (Y), magenta (M), and cyan (C),and one black developer 21B used to develop black, so as to visualizethe electrostatic latent image. The color developers 20Y, 20M, and 20Cand the black developer 21B respectively comprise sleeves 20YS, 20MS,and 20CS, and 21BS, and application blades 20YB, 20MB, 20CB, and 21BB,which are respectively in press contact with the outer circumferentialsurfaces of these sleeves 20YS, 20MS, and 20CS, and 21BS. The threecolor developers 20Y, 20M, and 20C respectively have application rollers20YR, 20MR, and 20CR.

The black developer 21B is detachably attached to the printer main body,and the color developers 20Y, 20M, and 20C are detachably attached to adeveloping rotary 23, which rotates about a rotation shaft 22. Thesleeve 21BS of the black developer 21B is located to have a small gap ofabout 300 μm from the photosensitive drum 15. The black developer 21Bfeeds toner using a built-in feeding member, and gives an electriccharge to the toner by frictional electrification so as to apply thetoner on the outer circumferential surface of the sleeve 21BS, whichrotates clockwise, using the application blade 21BB. By applying adeveloping bias to the sleeve 21BS, an electrostatic latent image on thephotosensitive drum 15 is developed by black toner to form a visibleimage on the photosensitive drum 15.

The three color developers 20Y, 20M, and 20C rotate upon rotation of thedeveloping rotary 23 in image formation, and the predetermined sleeve20YS, 20MS, or 20CS opposes the photosensitive drum 15 to have a smallgap of about 300 μm. In this way, the predetermined color developer 20Y,20M, or 20C stops at a developing position that opposes thephotosensitive drum 15, thus forming a visible image on thephotosensitive drum 15.

Upon forming a color image, the developing rotary 23 rotates uponcompletion of a color developing process for a component color on theintermediate transfer member 9. The developing processes are done in theorder of the yellow developer 20Y, magenta developer 20M, cyan developer20C, and black developer 21B. After four rotations of the intermediatetransfer member 9, visible images of yellow, magenta, cyan, and blacktoners are sequentially formed, thus consequently forming a full-colorvisible image on the intermediate transfer member 9.

The intermediate transfer member 9 contacts the photosensitive drum 15,and rotates upon rotation of the photosensitive drum 15. Theintermediate transfer member 9 rotates clockwise and receives fourvisible images multiple-transferred from the photosensitive drum 15 uponcolor image formation. Also, the transfer roller 10 (to be describedlater) contacts the intermediate transfer member 9 to clamp and conveythe transfer material 2 upon image formation, thus simultaneouslymultiple-transferring the color visible image on the intermediatetransfer member 9 onto the transfer material 2. A TOP sensor 9 a and RSsensor 9 b used to detect the positions associated with the rotationdirection of the intermediate transfer member 9, and a density sensor 9c used to detect the density of a toner image transferred onto theintermediate transfer member are located around the intermediatetransfer member.

The transfer roller 10 comprises a transfer charger supported to bemovable toward or away from the intermediate transfer member 9. Thetransfer roller 10 is formed by warping a medium resistance foamedelastic body on a metal shaft.

The transfer roller 10 moves away downward so as not to disturb colorvisible images while the color visible images are multiple-transferredonto the intermediate transfer member 9, as indicated by the solid linein FIG. 4. After the four color visible images are formed on theintermediate transfer member 9, the transfer roller 10 is located at anupper position indicated by the dotted line in FIG. 4 by a cam member(not shown) in synchronism with the transfer timing of the multi-colorvisible image onto the transfer material 2. In this way, the transferroller 10 is brought into press contact with the intermediate transfermember 9 at a predetermined pressure via the transfer material 2, and isapplied with a bias voltage, thus transferring the multi-color visibleimage onto the transfer material 2.

The fixing unit 25 fixes the transferred multi-color visible image whileconveying the transfer material 2, and comprises a fixing roller 26which heats the transfer material 2, and a pressure roller 27 whichmakes the transfer material 2 pressure-contact the fixing roller 27. Thefixing roller 26 and pressure roller 27 have a hollow shape, andrespectively incorporate heaters 28 and 29. That is, the transfermaterial 2 which holds the multi-color visible image is conveyed andapplied with heat and pressure by the fixing roller 26 and pressureroller 27, thus fixing the toner image on its surface.

After the visible image is fixed, the transfer material 2 is exhaustedonto an exhaust unit 37 by exhaust rollers 34, 35, and 36, thus endingthe image forming operation.

The cleaning unit cleans the residual toner on the photosensitive drum15 and intermediate transfer member 9, and the cleaner container 14stores waste toner after the toner visible image formed on thephotosensitive drum 15 is transferred onto the intermediate transfermember 9 or after the four color visible images formed on theintermediate transfer member 9 are transferred onto the transfermaterial 2.

A transfer material (print sheet) 2 to be printed is picked up from thepaper cassette 1 by a pickup roller 3, and is conveyed while beingclamped between the intermediate transfer member 9 and transfer roller10. Then, a color toner image is transferred to the transfer material 2,and is fixed via the fixing unit 25. In a single-sided print mode, aguide 38 forms a conveyance path to guide the print sheet to the exhaustunit at an upper position. However, in a double-sided print mode, theguide 38 forms a path to guide the print sheet to a double-sided unit ata lower position.

The print sheet guided to the double-sided unit is temporary fed to aportion under the paper cassette 1 (a convey path indicated by thetwo-dashed chain line) by convey rollers 40, and is then conveyed in areverse direction to be fed to a double-sided tray 39. On thedouble-sided tray 39, the obverse and reverse faces of the print sheetare reversed from those placed on the paper cassette 11, and the leadingand trailing ends of the convey direction are reversed. In this state,by transferring and fixing toner images again, the double-sided printmode can be attained.

<Software Configuration of Host Computer>

FIG. 2 shows the configuration of typical print processing in the hostcomputer to which the printing apparatus such as a printer or the likeis connected directly or via a network. An application 201, graphicengine 202, printer driver 203, and system spooler 204 exist as filessaved in the external memory 111. These files are executed after theyare loaded onto the RAM 102 by the OS or modules that use those of theOS. The application 201 and printer driver 203 can be added to the HD ofthe external memory 111 via the FD or a CD-ROM (not shown) of theexternal memory 111, or a network (not shown). However, when printprocessing is executed from the application 201 to the printer 2000, theapplication 201 outputs rendering data using the graphic engine 202which is similarly loaded onto the RAM 102 and is ready to run. Notethat the following explanation will be given using the Windows® OSavailable from Microsoft Corporation. In Windows®, the graphic engine202 as rendering means of the OS is generally called a GDI (GraphicDevice Interface), and the application outputs rendering data called GDIfunctions to the GDI serving as the graphic engine.

The graphic engine 202 similarly loads onto the RAM 102 the printerdriver 203, which is prepared for each printing apparatus, from theexternal memory 1l. The graphic engine 202 then converts the CDIfunctions output from the application 201 into DDI (Device DriverInterface) functions based on a library and outputs the DDI functions tothe printer driver 203. The printer driver 203 converts the DDIfunctions received from the graphic engine 202 into control commandsthat can be recognized by the printer, e.g., PDL (Page DescriptionLanguage) commands. The converted PDL commands are output to the printer2000 as print data included in a print job via the system spooler 204,which is loaded onto the RAM 102 by the OS, and the interface 121. Thepreview print system proposed by Japanese Patent Laid-Open No.2001-067347 is implemented by providing a configuration that temporarilyspools print data from the application as intermediate code data inaddition to the print system which includes the printer and hostcomputer shown in FIG. 2.

A preview print system of this embodiment will be described below usingFIG. 3. FIG. 3 shows a system obtained by enhancing that shown in FIG.2, and adopts a configuration that temporarily generates a spool file303 including intermediate codes upon sending print instructions fromthe graphic engine 202 as the rendering means of the OS to the printerdriver 203. Since intermediate codes are temporarily generated, apreviewer loads the contents of the intermediate codes of the spool file303 and allows the user to preview and to change the print settings.

For these purposes, the system shown in FIG. 2 is enhanced to spool asintermediate code data, as shown in FIG. 3. In order to change thesettings of print data, the user normally makes settings from a windowprovided by the printer driver 203, which saves the setting contents onthe PAM 102 or external memory 111.

<Software Configuration of Host Computer of This Embodiment>

Details of FIG. 3 will be described below. The same reference numeralsin FIG. 3 denote the same blocks as those in FIG. 2. As shown in FIG. 3,in this enhanced processing system, a dispatcher 301 receives printinstructions output from the graphic engine 202. If the printinstructions (DDI functions) received from the graphic engine 202 arethose (GDI functions) issued from the application 201, the dispatcher301 loads the spooler 302 stored in the external memory 111 onto the RAM102. Also, the dispatcher 301 sends the received print instructions (GDIfunctions) to the spooler 302 in place of the printer driver. In orderto allow the dispatcher 301 to determine the source of printinstructions, a method of appending an ID of a process as a transmissionsource of print instructions to those print instructions or the like isavailable.

The spooler 302 interprets the received print instructions, convertsthem into intermediate codes in a predetermined format, which allowseasy modifications, for respective pages, and outputs the convertedintermediate codes to store them in the spool file 303. The spool fileof the intermediate codes stored for each page is called a pagerendering file (or Unified Display List: UDL). The spooler 302 acquiresprint setting information set using the printer driver 203 from it, andsaves the acquired print setting information in the spool file 303 as asetting file for each job. The print setting file stored for each job iscalled a job setting file. The job setting file is also called a JDF(Job Definition Format). This job setting file will be described later.The operator changes the print settings on the printer driver in advancebefore he or she issues a print instruction from the application. Printsetting items that can be set using the printer driver include an Nupsetting used to lay out, e.g., N pages on one page in a reduced scale,double-/single-sided setting, staple setting, color/monochrome setting,and the like.

The spooler 302 loads a spool file manager 304 stored in the externalmemory 111 onto the RAM 102, and notifies the spool file manager 304 ofthe generation state of the spool file 303. After that, if the spoolfile manager 304 determines that print processing is ready to beexecuted using the intermediate data stored in the spool file 303, itloads a despooler 305 stored in the external memory 111 onto the RAM102. The spool file manager 304 instructs the despooler 305 to executeprint processing of page rendering files described using theintermediate codes (UDL) described in the spool file 303. In this case,the spool file manager 304 loads a previewer 306 stored in the externalmemory 111 onto the RAM 102, and notifies it of the job ID to set thepreviewer 306 in the standby state.

The despooler 305 re-generates GDI functions in accordance with thecontents of the page rendering files of the intermediate codes includedin the spool file 303 and the job setting information included in thespool file 303. The re-generated GDI functions are output via thegraphic engine 202 as the rendering means of the OS once again.

If the print instructions (DDI functions) received by the dispatcher 301from the graphic engine 202 are those (GDI functions) issued by thedespooler 305, the dispatcher 301 passes the print instructions to theprinter driver 203.

The printer driver 203 generates printer control commands in a pagedescription language (PDL) or the like based on the print instructions(DDI functions) acquired from the graphic engine 202, and sends thegenerated commands to the printer 2000 via the system spooler 204 as aprint job. In this embodiment, if a preview mode is designated from auser interface or the like of the printer driver, a preview attribute isappended to the PDL commands, which are transmitted to the printer. Forexample, the preview attribute is appended to information (job controlinformation) associated with a job as a unit of print processing, andthat information is transmitted to the printer. The printer 2000 doesnot print the print job appended with the preview attribute onto papersheets, but it generates preview information associated with the job IDand transmits the generated information to the computer 3000. Thepreview information includes information required to display a previewsuch as layout information indicating the layout of pages which are tobe actually printed on paper sheets and are stored in the spool file303, staple positions of respective physical pages, and the like. Notethat a paper sheet which is to actually undergo printing is also calleda sheet or physical page. Also, a page stored in the spool file 303 isalso called a logical page. In addition, the preview informationincludes a blank page determination result (blank page information)indicating whether or not a page of interest is a blank page, and colormode information indicating one of monochrome and color.

The previewer 306 configures a preview unit 310 together with a settingchange editor 307. Upon reception, from the printer (printingapparatus), of the preview information corresponding to the job IDreceived from the spool file manager 304, the previewer 306 stores thereceived preview information in the spool file 303. At the same time,the previewer 306 pops up a window of the spool file manager, anddisplays, as a list, job IDs associated with the preview informationspooled in the spool file 303 on the window. Note that the previewinformation is also called “JDFP” (Job Definition Format For Preview)for short.

The user can set to display a preview by providing a user interfacewindow shown in, e.g., FIG. 8. In order to display a print preview andto change the print settings, the user must designate “store” from apull-down menu (also called output method selection means) 803 as meansfor “designating an output destination” on the property window of theprinter driver shown in FIG. 8. When the user wants to display only apreview, he or she selects “preview” from the pull-down menu 803 asdesignation of the output destination.

FIG. 9 shows a display example of the print state when one print job isspooled. By pressing one of menu bar items 901 or one of menu icons 902immediately below the menu bar, the user can manipulate a job. Themanipulations that the user can make using the menu bar 901 are the sameas those that he or she can make using the menu icons 902 themanipulations include “print”, “save & print”, “preview”, “delete”,“copy”, “edit job”, “change order”, and the like. “Print” is amanipulation for making the printer 2000 print a print job selected froma list 903. “Save & print” is a manipulation for making the printerprint the print job selected from the list 903 while leaving the spoolfile of the intermediate codes of that print job intact. “Preview” is amanipulation for displaying a preview of the print job selected from thelist 903 while reflecting the print settings. “Delete” is a manipulationfor deleting the spool file of the intermediate codes of the print jobselected from the list 903. “Copy” is a manipulation for copying thespool file of the intermediate codes of the print job selected from thelist 903. “Job edit” is a manipulation for changing the print settings(layout setting, finishing setting, and the like) of the job selectedfrom the list 903. “Change order” is a manipulation for changing theprint order of jobs.

When the user selects a certain print job and designates its preview onthe window (FIG. 9) of the spool file manager 304, the spool filemanager 304 loads the previewer 306 stored in the external memory 111onto the RAM 102. The spool file manager 304 designates the previewer306 to execute preview processing of the job of the intermediate codesdescribed in the spool file 303.

Upon reception of the designation, the previewer 306 receives thepreview information from the printer, and sequentially reads out pagerendering files (UDL) of the corresponding intermediate codes includedin the spool file 303. The previewer 306 modifies the page renderingfiles in accordance with the setting information for respective pagesincluded in the preview information (JDFP), re-generates GDI functionsbased on the modified intermediate data (page rendering files), andoutputs the re-generated GDI functions to the graphic engine 202. Inthis case, a client area of the previewer 306, i.e., a display device isdesignated as the output destination. In this manner, since the graphicengine 202 which received the GDI functions outputs DDT functions forthe display device, a display output onto the screen can be attained.Note that the preview information and page rendering files can beassociated with each other using the job ID of the print job. Since thejob ID is included in both the preview information and spool file, thepreview information and spool file having the same job ID can beassociated with each other as information pertaining to an identicalprint job.

The graphic engine 202 can perform appropriate rendering in accordancewith the designated output destination. For example, the display deviceand printing apparatus have different resolutions. The graphic engine202 acquires attribute information such as the resolution of thedesignated output destination and the like from, e.g., a database or thelike managed by the OS, and executes rendering using the acquiredinformation. As described above, the previewer 306 can be implemented bythe method of modifying the intermediate codes included in the spoolfile 303 in accordance with the preview information (JDFP) andoutputting the modified intermediate codes using the graphic engine 202.

<Software Configuration of Printer 2000>

The operation of the printer (printing apparatus) 2000 shown in FIG. 3will be described below. The printer 2000 receives printer controlcommands such as PDL commands or the like from the host computer 3000,and temporarily stores them in a reception buffer 2003. A commandinterpreter 2007 interprets the printer control commands such as the PDLcommands. As a result of interpretation, if the received printer controlcommands are print commands, a rendering processing execution unit 2005rasterizes image data in accordance with the print settings of the printjob of interest, and temporarily stores the image data in an HD 2011.After the image data that can be output is stored, an output controller2008 converts the image data into a video signal in synchronism withengine rotations (ship processing), and passes the video signal to aprinter engine 2010. The printer engine 2010 forms images on sheets inaccordance with the video signal. Note that the job includes a series ofprinter control commands delimited by a job start command. The jobsetting information indicating the print settings is transmitted fromthe host computer 3000 to the printing apparatus 2000 after, e.g., thejob start command. Whether one job is a print job or preview job isindicated by, e.g., the value of a “job type” field in the job settinginformation. Alternatively, the value of the “job type” field in the jobsetting information may be copied to the job start command, so that thejob start command indicates the job type.

In this embodiment, if the job received by the printing apparatus 2000is a preview job, the rendering processing execution unit 2005rasterizes image data in accordance with the designated settings in thesame manner as in the print job. The rasterized image data istemporarily stored in the HD 2011 together with the job ID. Therendering processing execution unit 2005 associates detailed previewinformation (JDFP) for respective physical pages generated during theprocess for rasterizing image data to process it to a state immediatelybefore printing, and the temporarily stored image data, and saves themas a set.

The generated preview information is returned to the previewer 306 ofthe host computer 3000 as the transmission source of the job. In orderto speed up the preview processing, the generation time of the previewinformation (JDFP) may be shortened by simplifying the processing forrasterizing to an image, and after the preview information is returnedto the previewer, image data to be printed may be rasterized.

The previewer 306 sends, to the printer, print instructions with apreview attribute generated by the printer driver 203 based on the jobsetting information (JDF) and page rendering files (UDL). As a result,the printer executes the same processing as actual print processing, andgenerates accurate preview information (JDFP) as in actual printing. Thepreview information generated by the printing apparatus has the samedata format as that of the job setting information. However, unlike thejob setting information, the preview information is generated for eachphysical page. Also, the preview information includes items differentfrom the job setting information. The job setting information andpreview information will be described later with reference to FIGS. 12,13, and the like. The previewer 306 modifies data of the spooled pagerendering files (UDL) based on the preview information (JDFP) receivedfrom the printer, and outputs the modified data to the display. In thisway, an accurate preview display can be attained.

As a result of the above preview processing, the previewer 306 displayspreviews as large as printouts that reflect the job settings included inthe spool file 303 on the screen, as shown in FIG. 11. After that, ifthe user instructs to clear the displayed contents, the previewer 306 isclosed, and the control shifts to the spool file manager 304. The spoolfile manager 304 displays a window (FIG. 9).

Upon executing job setting/print processing displayed on the previewer,the user designates “print” or “save & print” on the window of the spoolfile manager 304 to issue a print request to the graphic engine 202. Ifthe print settings are not to be changed, the user can designate the jobID in the print request. The printer which received the printer controlcommands of the print request via the graphic engine 202 and the likecan output images which correspond to the designated job ID and havealready undergone RIP (have already been rasterized to image data) athigh speed.

Upon changing the print settings, the user changes the print settingssuch as the layout, paper orientation, print order, paper cassette to beused, and the like from the print setting window provided by thepreviewer 306, and settles the changes. The setting change editor 307edits the job setting information (JDF) corresponding to the preview jobsaved in the spool file 303 in accordance with the contents of thechanged print settings. The despooler 305 reads out the edited jobsetting information from the spool file 303, and passes it to theprinter driver 203 together with the job ID via the graphic engine 202and the like. The printer driver 203 generates printer control commandscorresponding to differences from the printer control commands of thealready transmitted job, and outputs them to the printing apparatus2000. In this case, the differences are limited to those in the jobsetting information. Therefore, for example, new printer controlcommands required to transmit the job setting information to theprinting apparatus 2000 are generated, and are transmitted to theprinting apparatus 2000 together with the job ID. This job ID is thesame as that of the preview job which was transmitted first to theprinting apparatus 2000.

<Processing Flow>

The processing flow of the conventional preview scheme will be describedbelow using FIGS. 2 and 16. FIG. 16 shows an example of the processingflow of the overall conventional preview processing system. Uponreception of a print instruction from the application 201, the printerdriver 203 generates intermediate codes (processing step 1601). Thegenerated intermediate codes are saved in a spool file. A previewutility generates an image to be displayed by loading the intermediatecodes, and displays a preview on the screen of a personal computer(processing step 1602). If the display result has no problem, the userpresses a print button to call the printer driver 203. The printerdriver 203 generates PDL commands (printer control commands) (processingstep 1603) Upon reception of the print job including the PDL commandsfrom the printer driver 203, a printer 600 starts print processing fromPDL command interpretation (processing step 1604). The preview utilityof the host computer generates and displays a preview image using theintermediate codes.

FIG. 17 shows an example of the processing sequence of the overallsystem of this embodiment. Upon reception of a print instruction fromthe application 201, the printer driver 203 generates intermediate codes(processing step 1701) The spooler 302 saves the intermediate codes inthe spool file 303. The preview unit 310 loads the spooled intermediatecodes, and issues a print instruction to the printer driver 203. Notethat this print instruction includes information indicating preview. Forexample, information indicating preview is described in the job settinginformation. The print instruction including information indicatingpreview is referred to as a preview instruction in this invention. Uponreception of the print instruction (i.e., preview instruction), theprinter driver 203 generates PDL commands (processing step 1702). Theprinter driver 203 appends a preview attribute to the generated PDLcommands, and transmits them as print instructions with the previewattribute to the printer 2000. The print instruction send to the printer2000 from the printer driver 203 is referred to as a print job. Theprint job with the preview attribute is referred to as a preview job.Upon reception of the print job with the preview attribute, the printer2000 interprets the PDL commands to generate preview information (JDFP),and returns the generated preview information to the host computer(processing step 1703). A final recipient of the preview information inthe host computer is the preview unit 310. The printer 2000 alsoexecutes RIP processing of the print job with the preview attributereceived after interpretation of the PDL commands to generate imagedata. The generated image data are stored in the hard disk together withthe preview information in association with the job ID (processing step1705). However, as this RIP processing, the same RIP processing as thatupon reception of the print job is executed to generate image data to beprinted. If the PDL commands are also saved, only information associatedwith differences may be received after the settings have been changed.Hence, it is desirable to store the PDL commands. In this embodiment,the received PDL commands are also stored.

The preview unit 310 loads the spooled intermediate codes, and makespreview display in accordance with the preview information (JDFP)received from the printer 2000 (processing step 1704). The spooledintermediate codes include image information for respective pages suchas objects to be rendered for respective physical pages, and the like.The preview information includes information associated with the printsettings such as the layout for each physical page, finishinginformation, and the like. The preview unit 310 rasterizes theintermediate codes to those for display, lays out logical pages inaccordance with the print settings described in the preview information,and appends image objects according to output materials. The imageobjects to be appended include those which represent punch holes,staples, a watermark, character strings of tab sheets, and the like.When a finisher has an inserter function, image objects that representsheets such as a front cover sheet, back cover sheet, tab sheets, andthe like to be inserted by an inserter, and objects such as characterstrings, images, and the like written on these sheets to be inserted areinserted in accordance with the preview information. If a finisherhaving a bookbinding function is added to the printer 2000, the previewunit 310 also appends identification objects indicating the bookbindingpositions and the like. In this way, preview images are generated anddisplayed in accordance with the preview information.

When the user changes the print settings, the preview unit 310 reflectsthe changed print settings in the job setting information. Also, thepreview unit 310 sends a print instruction to the printer driver 203 viathe graphic engine 202. The printer driver 203 generates difference PDLcommands (processing step 1710). Since information changed by thepreview unit 310 is limited to the job setting information, new PDLcommands are generated as difference PDL commands. The difference PDLcommands are transmitted to the printer 2000 together with the job ID.This job ID is the same as that of the preview job which was transmittedto the printer 2000 first. Upon reception of the difference PDLcommands, the printer 2000 generates preview information again withreference to its job ID (processing step 1707). In processing step 1707,for example, the printer 2000 substitutes the job setting informationreceived as the difference PDL commands with that in the PDL commandsstored in association with that job ID. The printer 2000 then generatespreview information based on the substituted PDL commands. The printer2000 transmits the generated preview information to the preview unit 310as the request source of the preview information. After that, theprinter 2000 executes RIP processing using the changed job settinginformation to reflect the changed print settings in image data, thusupdating the stored image data (processing step 1709). This RIPprocessing may be executed for only a changed part if the settings arepartially changed. However, since the changed part in job settinginformation influences all the pages included in the job of interesteven when settings are changed partially, it is desirable to execute theRIP processing for the entire job again.

The preview unit 310 generates and displays preview images using thereceived preview information and the spooled intermediate codes andaccepts the print button (processing step 1708). When the user hasdepressed the print button after he or she confirms the preview images,the preview unit 310 sends the print instruction to the printer driver203. The printer driver 203 generates difference PDL commands, and sendsa print job to the printer 2000 (processing step 1710). However, if theprint settings are not changed, since there is no difference informationto be sent, the print job to be transmitted to the printer 2000 at thistime need only include information indicating that the job is a printjob, and the job ID.

If the stored PDL commands are not changed, the printer 2000 prints outthe images generated in processing step 1709. If the stored PDL commandsare changed, the printer 2000 generates and prints image data thatreflect the changes (processing step 1711). Image data obtained byapplying RIP processing to only the changed part may be printed in placeof the image data with the same job ID, but the entire job may undergothe RIP processing again.

As described above, the printer driver works as a print instructiontransmission means that generates, when a preview instruction of data isissued, printer control commands according to print data together with ajob type indicating preview, and transmit the generated printer controlcommands to the printer. In addition, the previewer works as a previewmeans that generates and displays a preview image based on previewinformation which is generated by the printer 2000 in accordance withthe printer control commands and which indicates layouts and finishingprocessing for respective physical pages. Moreover, the printer driverworks as a setting change means that generates, when the print settingsare changed, print instructions associated with a changed part.

<Processing by Spooler>

FIG. 5 is a flowchart showing the storage processing of the intermediatecodes for respective pages in generation of the spool file 303. Thisprocessing is executed after the dispatcher 301 accepts DDI functions asrendering data output from the graphic engine 202 and passes thisrendering data to the spooler 302 upon reception of a print request fromthe application.

In step 501, the spooler 302 accepts a print request issued by theapplication from the dispatcher 301 via the graphic engine 202. Asdescribed above, the application 201 displays a dialog used to input theprint settings, as shown in FIG. 8, before a print instruction, and theprinter driver 203 passes job setting information indicating the printsettings input from this dialog to the spooler 302. Note that thesetting input dialog shown in FIG. 8 includes setting items 801 used todetermine the number of logical pages to be laid out per physical page,and the like.

The spooler 302 checks in step 502 if the accepted print request is ajob start request. If the spooler 302 determines in step 502 that theaccepted print request is a job start request, the process advances tostep 503-1, and the spooler 302 generates a spool file 303 used totemporarily store intermediate data on the PAM 102 (or on the harddisk). Subsequently, the spooler 302 receives print setting information(corresponding to DEVMODE of Windows®) from the printer driver 203, andstores job setting information (JDF) in the spool file 303 (step 503-2).After that, the spooler 302 notifies the spool file manager 304 of theprogress of print processing. In this case, if the job designated by theuser is a preview job, the spooler 302 sends a preview notification tothe spool file manager 304; if the job is a print job, the spooler 302sends a print start notification to the manager 304 (step 504).

Next, in step 505 a page counter managed by the spooler 302 is reset to1. Note that the spool file manager 304 loads job information for thejob, the print processing of which has started, and job settinginformation as modification settings from the job setting file of thespool file 303.

On the other hand, if the spooler 302 determines in step 502 that theaccepted print request is not a job start request, the process advancesto step 506. The spooler 302 checks in step 506 if the accepted requestis a job end request. If the spooler 302 determines that the acceptedrequest is not a job end request, the process advances to step 507, andthe spooler 302 checks if the accepted request is a new page request. Ifthe spooler 302 determines in step 507 that the accepted request is anew page request, the process advances to step 508-1 to increment thepage counter. In step 508-2, the spooler 302 notifies the spool filemanager 304 of the progress of print processing. In this case, thespooler 302 notifies the spool file manager 304 of reception of the newpage request as the progress information. At the same time, the spooler302 may notify the page counter value.

If the spooler 302 determines in step 507 that the accepted printrequest is not a new page request, the process advances to step 509, andthe spooler 302 prepares for extraction of intermediate codes (UDL) toeach page rendering file. In step 510, the spooler 302 convertsrendering data such as text data, graphic data, image data, and the likepassed together with the print request into intermediate data to bestored in the spool file 303. In step 511, the spooler 302 writes theprint request which is converted into a storable format (intermediatedata) in step 510 in each page rendering file (UDL) of the spool file303. After that, the process returns to step 501 to accept a printrequest from the application again. The spooler 302 repeats a series ofprocesses in steps 501 to 511 until it received a job end request (EndDoc) from the application.

At the same time, the spooler 302 acquires print setting informationsuch as modification settings and the like stored in the DEVMODEstructure (i.e., print setting information) from the printer driver 203,and stores it as job setting information (JDF) in the spool file 303. Onthe other hand, if the spooler 302 determines in step 506 that the printrequest from the application is a job end request, all print requestsfrom the application end. Hence, the process advances to step 512, andthe spooler 302 closes the spool file. In step 513, the spooler 302notifies the spool file manager 304 of the progress of print processing(job end notification in this case), thus ending the processing.

<Processing by Spool File Manager>

FIG. 6 is a flowchart showing details of control between the spool file303 generation process and a print data generation process (to bedescribed later) in the spool file manager 304. In step 601, the spoolfile manager 304 accepts a progress notification or report of printprocessing from the spooler 302 or despooler 305.

The spool file manager 304 checks in step 602 if the progressnotification is a preview or print start notification sent from thespooler 302 in step 504 above. If the accepted notification is a previewor print start notification, the process advances to step 603, and thespool file manager 304 acquires a job ID to start job management. Thespool file manager 304 can acquire the job ID from a job ID generationcounter or the like used to assign serial numbers in turn.

On the other hand, if the spool file manager 304 determines in step 602that the accepted notification is not a preview or print startnotification from the spooler 302, the process advances to step 604. Thespool file manager 304 checks in step 604 if the progress notificationis a new page notification sent from the spooler 302 in step 508 above,i.e., a processing end notification of one logical page. If the acceptednotification is a processing end notification of one logical page, theprocess advances to step 605, and the spool file manager 304 stores pageinformation for this page. The page information includes, e.g., a pageID (physical page and logical page), information indicating associationbetween the logical and physical pages, and the like. In step 606, thespool file manager 304 determines a page number to be printed every timeprint instructions (intermediate codes) corresponding to one physicalpage are spooled, and sends to the despooler a processibilitynotification indicating that the physical page of interest is ready toprocess. The processibility notification includes a page ID of thephysical page which is ready to output. For example, when a plurality oflogical pages are laid out on one physical page, the spool file manager304 receives a new page notification from the spooler every time itreceives a logical page to be laid out on that one physical page. Ifdata of all logical pages to be laid out on one physical page are notspooled yet, the processibility notification is not output in step 606.Only after data for one physical page are spooled, the processibilitynotification is output. Note that printing in this case includes previewprocessing.

The process then returns to step 601, and the spool file manager 304waits for the next notification. In this embodiment, print processingcan start even when spooling of the entire print job is not completedafter print data for one physical page are spooled.

On the other hand, if the spool file manager 304 determines in step 604that the accepted notification is not a print end notification for onelogical page, the process advances to step 607. The spool file manager304 check in step 607 if the received notification is a job endnotification sent from the spooler 302 in step 512 above. If thereceived notification is a job end notification, the process advances tostep 606 above. On the other hand, if the received notification is not ajob end notification, the process advances to step 608, and the spoolfile manager 304 checks if the accepted notification is a print end(output end) notification for one physical page from the despooler 305.If the accepted notification is a print end notification for onephysical page, the process advances to step 609 to check if printprocessing of the entire job is complete.

If the print (output) processing is complete, the process advances tostep 610, and the spool file manager 304 sends a print end notificationto the despooler 305. If the spool file manager 304 determines that theprint processing is not complete yet, the process returns to step 606.Assume that the number of pages for which the despooler 305 of thisembodiment can simultaneously execute print processing (outputprocessing) is 1.

On the other hand, if the spool file manager 304 determines in step 608that the input notification is not a print end notification for onephysical page from the despooler 305, the process advances to step 611.The spool file manager 304 check in step 611 if the input notificationis a print end notification from the despooler 305. If the spool filemanager 304 determines that the input notification is a print endnotification from the despooler 305, the processing ends. On the otherhand, if the input notification is not a print end notification from thedespooler 305, the process advances to step 612 to execute anothernormal processing, and the spool file manager 304 waits for the nextnotification.

If information required for executing print processing for one physicalpage is sequentially stored in a file in steps 605 and 606, the storedinformation is converted into a reusable format to issue aprocessibility notification. If the stored information is not reusable,an implementation method which uses a high-speed medium such as a sharedmemory or the like to overwrite a despooled physical page in turn, andsaves the resources may be adopted. The delimiter of one physical pageis determined with reference to the job setting information. When theprogress of spooling is faster than that of despooling, or whendespooling starts after the end of spooling for all pages, a pageprintable notification for each page may not be sent in step 606. Inthis case, the number of times of notification is saved by adopting thenotification contents indicating that a plurality of or all physicalpages are ready to print, in accordance with the progress on thedespooler side.

<Processing by Despooler>

FIG. 7 is a flowchart showing details of the print data generationprocess in the despooler 305. The despooler 305 generates print data byreading out necessary information (page rendering files (UDL) and jobsetting information (JDF)) from the spool file 303 in accordance with aprint request from the spool file manager 304. The method oftransferring the generated print data to the printer is as describedabove using FIG. 3. In the print data generation process by thedespooler 305, the despooler 305 checks if the input job is a previewjob (S701). If the input job is a preview job, the despooler 305launches the preview unit 310 by notifying it of the job ID to beprocessed in step 702. The job type indicating a preview job or printjob can be determined by referring to the job type field of the jobsetting information.

In step 703, the despooler 305 accepts a notification from the spoolfile manager 304. If a notification is input, the process advances tostep 704. The despooler 305 checks in step 704 if the input notificationis a job end notification. If the input notification is a job endnotification, the process advances to step 705 to set an end flag. Theprocess then advances to step 707.

On the other hand, if the despooler 305 determines in step 704 that theinput notification is not a job end notification, the process advancesto step 706, and the despooler 305 checks if the input notification is aprocessibility notification in step 606 in FIG. 6. If the despooler 305determines in step 706 that the input notification is not aprocessibility notification, the process advances to step 708 to executeanother error processing. The process then returns to step 701 to waitfor the next notification. On the other hand, if the despooler 305determines in step 706 that the input notification is a processibilitynotification, the process advances to step 707, and the despooler 305stores a page ID in the processibility notification which notifies thatthe print processing is ready to start.

The despooler 305 then checks in step 709 if the output processing forall the pages of the physical page IDs stored in step 707 is complete.If the processing of all the pages is complete, the process advances tostep 710 to check if an end flag is set. If the end flag is set, thedespooler 305 determines that the print processing of the job iscomplete, and sends a processing end notification to the spool filemanager 304, thus ending the processing. If the despooler 305 determinesin step 710 that the end flag is not set, the process returns to step701 to wait for the next notification.

On the other hand, if the despooler 305 determines in step 709 thatpages which can undergo output processing still remain, the processadvances to step 711. In step 711, the despooler 305 reads out aphysical page ID to be processed in turn from the stored physical pageIDs. The despooler 305 loads information required to generate print dataof a physical page corresponding to the readout physical page ID fromthe spool file, and executes print processing (output processing).

In the print processing, the despooler 305 converts print requestinstructions (UDL) and job setting information (JDF) stored in the spoolfile 303 into a format that the graphic engine 202 can recognize, e.g.,into GDI functions in the Windows® OS. The despooler 305 transfers theseGDI functions to the graphic engine 202. Upon completion of printprocessing, the despooler 305 sends a print data generation endnotification to the spool file manager 304 in step 712. The processreturns to step 709, and the despooler 305 repeats print processing forall the physical page IDs stored in step 707.

With the above sequence, the despooler converts spooled intermediatecodes into print instructions (GDI functions), and outputs them for eachphysical page.

<Processing by Printer>

FIGS. 15A and 1SB are flowcharts showing details of the process of theprinter which receives print instructions with a preview attributegenerated in step 711.

In step 1501, the type of a job included in the received PDL commands ischecked. If it is determined in step 1502 that the received job is apreview job, the process advances to step 1503. In step 1503, thereceived PDL commands are interpreted to collect information required todisplay a preview. If the information required to display a previewincludes information such as the paper cassette, exhaust destination,staple positions, and the like of respective physical pages, theinformation can be collected by interpreting the job setting informationwithout executing RIP processing (rasterize processing to bitmap data)that takes much time. If the information required to display a previewincludes that which requires the RIP processing such as blank pagedetermination, color/monochrome determination, and the like, the RIPprocessing is executed in this step to collect information.

In step 1504, preview information (JDEP) is generated based on theinformation collected in step 1503, and the generated previewinformation is returned to the request source (host computer 3000 inthis embodiment) of the preview job in step 1505.

Next, it is checked in step 1506 if the received PDL commands are thosefor the already registered job. “Already registered” means that printdata and preview information associated with a job with the same job IDas that of the received PDL commands are registered in the printer 2000.If the received PDL commands belong to an unregistered job, therendering processing execution unit 2005 of the printer 2000 executesRIP processing in step 1510. The generated image data are stored in theHD 2011 together with the preview information (JDFP) generated in step1504, original data, and job ID, thus ending the processing.

If it is determined in step 1506 that the PDL commands are those for aBOX already registered job, the print settings of the already registeredjob are compared with those of the received job by referring to theirjob setting information in step 1507. Upon reception of the PDL commandsin association with the already registered job, if, for example, thesecommands include job control information or print data of a certainpage, that job control information is compared with that of the alreadystored preview information. If information stored in the printer ispreview information, the preview information may be compared afterpreview information is generated based on the received PDL commands andis converted into the same format.

If it is determined in step 1508 that the print settings are different,RIP processing of a part influenced by the changed settings is executed,and image data are stored in the HD 2011 together with newly generatedpreview information (JDFP) in step 1509, thus ending the processing.That is, if image data which are left unchanged still remain, newlygenerated image data are merged with the already stored image data. Ifno image data which are left unchanged remain, the newly generated imagedata may be overwritten.

If it is determined in step 1502 that the received job is not a previewjob, the job IDs registered in the HD 2011 are searched for that of thereceived PDL commands in step 1511. If a hit occurs, since the job ID ofthe received PDL commands has already been registered, the processbranches to step 1512. If it is determined in step 1512 that the job ofreceived PDL commands is a print cancel job, the process branches tostep 1518; if it is a print job, the process branches to step 1513.

In step 1513, the print settings of the already stored job are comparedwith those of the received job by referring to their job settinginformation. If it is determined in step 1514 that the print settingsare different, RIP processing of a part influenced by the changedsettings is executed, and newly generated image data are stored in theHD 2011 in step 1515. The newly generated and stored image data aremerged with already stored image data. In step 1516, the merged imagedata are transferred to the printer engine 2010, thus executing printprocessing. The process advances to step 1518 in response to a print endnotification from the printer engine 2010.

If it is determined in step 1514 that the print settings are notdifferent, data that have already undergone the RIP processing and arestored in the HD 2011 are printed in step 1516, and the process advancesto step 1518, thus ending the processing. If it is determined in step1511 that the job of interest is not stored in the HD 2011, RIPprocessing is executed in step 1517 to store generated image data in theHD 2011. In step 1516, the stored image data are transferred to theprinter engine 2010 to execute print processing. In response to a printend notification from the printer engine 2010, the file of the print jobwhose print processing is complete is deleted from a BOX in step 1518,thus ending the processing. On the other hand, upon reception of a printprocessing completion notification from the printer 2000, the hostcomputer 3000 deletes the file of the corresponding print job in thespool file 303.

<Preview Processing>

FIG. 14 is a flowchart showing details of the preview process in thepreview unit 310. The previewer 306 waits for an event from the printerin step 1401 after the despooler 305 is launched. An event istransmission of preview information in the example of FIG. 14. If anevent is returned from the printer, the previewer 306 loads the receivedpreview information (JDFP) in step 1402.

In step 1403, the previewer 306 reads out the page rendering files (UDL)of a job ID which corresponds to (matches) that of the previewinformation from the spool file 303. In step 1404, the previewer 306executes preview rendering processing of the page rendering files (UDL)in accordance with the preview information (JDFP) (preview display).

In step 1405, the previewer 306 waits for an event from the user. If itis determined that the user has input a print processing continuationinstruction without changing the settings of the preview display, thepreviewer 306 generates a print instruction and issues it to the printerin step 1407, and the process branches to step 1412. The printinstruction is generated by the printer driver in accordance with arequest from the previewer. This print instruction is a simple oneincluding only a job ID without any changes in print settings, since itis issued to make the printer print the stored job intact.

If it is determined that the print processing of the job is not to becontinued in step 1406, the process branches to step 1408. In step 1408,it is determined whether the user has instructed the previewer onmodification of the print settings or cancellation of the print job. Ifit is determined that the user has instructed the previewer oncancellation of the print processing of the job in step 1408, thepreviewer 306 generates a print cancel instruction in step 1409, and theprocess then branches to step 1412.

If it is determined that the user has changed the print settings in step1408, the process branches to step 1410. If the user has changed theprint settings, job setting information (JDF) is generated from thepreview information (JDFP) received in step 1402, and print instructionsare sent again to the printer using the despooler 305 in step 1410. Inthis case, the processing time can be shortened by sending only achanged part. The setting change editor 307 executes this step.

If the user issues a re-preview request, the process branches to step1401 according to the determination result in step 1411. If the userdoes not issue any re-preview request, the previewer 306 deletes thepreview information (JDFP) and page rendering files (UDL) in the spoolfile 303, thus ending the processing.

The procedures of the print preview processing and print processingusing the dispatcher 301, spooler 302, spool file manager 304, despooler305, printer 2000, and previewer 306 have been described.

<Job Setting Information and Preview Information>

A preview job will be described below with reference to FIG. 12. In thisexample, the preview job includes job setting information (JDF) 1201 andprint instructions (1202 to 1206). The preview job is transmitted as PDLcommands to the printer. FIG. 12 illustrates the job setting informationand print instructions included in the preview job. The job settinginformation (JDF) 1201 includes 10 records in FIG. 12, whose item names(indices) and their contents are delimited by tabs, and respectiverecords are given as a text file delimited by, e.g., line feed codes. Asthe contents of the records, the job setting information (JDF) 1201includes a job type 1201 a indicating a type, i.e., preview or print, ajob name (job ID) 1201 b, and print settings copied from the printsetting information.

In a Windows® printing system, since the settings set by the printsettings on a printer driver are applied to the entire job, one settingdata is generated for the entire job like the job setting information1201.

However, as for print instructions defined by PDL commands or the like,the settings can be changed in the middle of the job like L3 is A5portrait, L4 is A4 landscape, L5 is A4 portrait, and so forth after L1and L2 starting from A4 portrait.

Preview information 1001 in FIG. 10 is an example of preview information(JDFP) generated by the printer 2000 which receives the job settinginformation 1201 and print instructions (1202 to 1206). The previewinformation includes the job setting information and physical pageinformation. The physical page information includes finishinginformation indicating finishing processing such as stapling or the likewhich appears on each physical page, and configuring logical pageinformation which includes a layout of logical pages that configure thatphysical page.

The implication of the preview information 1001 is expressed by pages1002, 1003, 1004, and 1005. That is, L1, L2, L3, L4, and L5 are assignedto respective 2-up divided regions on the two faces of A3 landscapepaper sheets. In this way, using the preview information, outputmaterials to be printed can be re-configured. In this case, theconfiguring logical page information 1010 should be noted. In thisinformation, the printer which generates the preview informationdescribes a layout of logical pages. That is, this information includeslogical page IDs, sizes, rotation angle, sizes after scaling (or scalingfactors), reference position coordinates, and the like of logical pagesincluded in one physical page. With reference to this configuringlogical page information, the same physical page as that to be printedby the printer can be re-configured.

In addition, the preview information includes staple positioninformation, blank page determination information, and accountingdetermination information for each page. The staple position informationis referred to so as to re-configure the staple positions, and the blankpage determination information is referred to so as to indicate thepresence/absence of an image in a page.

On the other hand, preview information 1301 in FIG. 13 is also anexample of preview information (JDFP) which is generated by the printerthat receives the job setting information 1201 and print instructions(1202 to 1206) in FIG. 12 and is different from FIG. 10. Unlike thepreview information 1001 in FIG. 10, the rotation angles of logicalpages included in configuring logical page information 1310 express thatimages on the reverse face are upside down to those on the obverse face.Also, the preview information represents that an L4 page has a layoutwhich is reduced in scale to the width of an A4 sheet in the landscapedirection.

In this way, the printer generates preview information that includesinformation of the layout of logical pages and finishing processingwhich are to be made according to the interpretation of the job settinginformation for each printer.

Job setting information 1801 in FIG. 18 is print instruction informationgenerated when the previewer that receives the preview information 1001changes the print settings on the reverse face of the first page tothose on the reverse face of the first page in the preview information1301. The setting change editor 307 generates job setting informationand print instructions shown in FIG. 18 for a physical page whosesettings have been changed, and transmits them to the printer driver.The printer driver converts these print instructions into PDL commands,and transmits the converted commands to the printer. In the example ofFIG. 12, the printer driver converts the job setting information 1201and print instructions associated with L3 and L4 pages into PDLcommands, and transmits them to the printer. The printer stores thereceived difference to be merged with the already stored print data, andgenerates new preview information. The printer then transmits the newpreview information to the host computer 3000. After that, the printer2000 executes RIP processing to generate image data and stores thegenerated image data. The difference is merged with data of the storedjob.

A message 1901 in FIG. 19 indicates a print cancel instruction generatedby the previewer 306 which receives the preview information 1001. Theprint cancel instruction includes a job type and the job ID to becanceled. If the job type in FIG. 19 is changed to “print”, a printinstruction when the print settings are not changed is generated.

In this way, the output results of printers are of great varietydepending on models, manufacturers, and the like, even if theapplication outputs identical data with identical print settings.According to this embodiment, a perfect preview that reflects differentoperations depending on models can be implemented.

Furthermore, since print instructions are already sent to the printerupon preview, the time required from determination of print processingto the end of the print processing can be shortened.

That is, according to the print system of this embodiment, an accuratepreview display which reflects the states of output materials by theprinter can be implemented. Furthermore, the user is allowed to changethe print settings while displaying a preview window, and the changedprint settings can be accurately reflected in the preview and printouts.

Note that the present invention may be applied to either a systemconstituted by a plurality of devices (e.g., a host computer, interfacedevice, reader, printer, and the like), or an apparatus consisting of asingle equipment (e.g., a copying machine, facsimile apparatus, or thelike). The objects of the present invention are also achieved bysupplying a recording or storage medium, which records a program code ofa software program that can implement the functions of theabove-mentioned embodiments to the system or apparatus, and reading outand executing the program code stored in the storage medium by acomputer (or a CPU or MPU) of the system or apparatus. In this case, theprogram code itself read out from the storage medium implements thefunctions of the above-mentioned embodiments, and the storage mediumwhich stores the program code constitutes the present invention.

The present invention also includes a case wherein the functions of theabove-mentioned embodiments are implemented not only by executing thereadout program code by the computer but also by some or all of actualprocessing operations executed by an operating system (OS) running onthe computer on the basis of an instruction of the program code.Furthermore, the present invention is applied to a case wherein theprogram code read out from a storage medium is written in a memory of anexpansion card or a function expansion unit which is inserted in orconnected to the computer. In this case, the functions of theaforementioned embodiments are implemented by some or all of actualprocesses executed by a CPU or the like arranged in the functionexpansion card or unit based on the instruction of that program code.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent No. 2006-068272,filed Mar. 13, 2006, which is hereby incorporated by reference herein inits entirety.

1. A printer apparatus comprising: a reception unit adapted to receive aprint job from a host apparatus; a preview information generation unitadapted to generate, when a job type corresponding to the printercontrol commands is preview, preview information which indicates layoutsof logical pages and finishing processing for respective physical pagesto be printed in accordance with job setting information and print dataincluded in the print job; and a transmission unit adapted to transmitthe preview information to the host apparatus.
 2. The apparatusaccording to claim 1, further comprising: a storage unit adapted tostore, when the job type is preview, the job setting information and theprint data included in the print job received by said reception unit; arendering unit adapted to generate image data for respective physicalpages based on the print setting information and the print data; animage storage unit adapted to store, when the job type is preview, theimage data generated by said rendering unit; and a merge unit adaptedmerge, when a job identifier corresponding to the print job received bysaid reception unit matches a job identifier of a job stored in saidstorage unit, the job setting information and the print data included inthe received print job with already stored job setting information andprint data.
 3. A printer apparatus comprising: a reception unit adaptedto receive print job from a host apparatus; a preview informationgeneration unit adapted to generate, when a job type corresponding tothe print job is preview, preview information which indicates sizes,orientations, and scaling information of configuring pages in accordancewith job control information and print data included in the print job;and a transmission unit adapted to transmit the preview information tothe host apparatus.
 4. The apparatus according to claim 3, furthercomprising: a storage unit adapted to store images based on the printjob received by said reception unit; and a print unit adapted to printimage data stored in said storage unit in response to a printdesignation from the host apparatus.
 5. A printer apparatus comprising:a reception unit adapted to receive print job from a host apparatus; ageneration unit adapted to generate, when a job type corresponding tothe print job is preview, preview information and image data inaccordance with the print job; a transmission unit adapted to transmitthe preview information generated by said generation unit to the hostapparatus; a storage unit adapted to store the image data generated bysaid generation unit; and a print unit adapted to print the image datastored in said storage unit in response to a print designation from thehost apparatus.